O teste unitário é implementado com base no menor elemento testável (unidades) do software e implica em testar a
estrutura interna (como fluxo lógico e de dados), a função da unidade e os comportamentos observáveis. A
implementação de testes com foco na estrutura interna de uma unidade baseia-se no conhecimento da implementação da
unidade e denomina-se abordagem de caixa branca, a implementação de testes com a finalidade de verificar os
comportamentos observáveis e as funções da unidade não se baseiam no conhecimento da implementação e, portanto, são
conhecidos como abordagem de caixa preta. Ambas as abordagens são utilizadas para projetar e implementar os diferentes
tipos de testes necessários para testar as unidades de modo completo e bem-sucedido.
-
Abordagem caixa branca: Realize o teste de caixa branca para verificar a estrutura interna de uma unidade, cada
caminho possível ao longo do código deve ser testado, mas isso só pode ser feito em unidades muito simples, assim
teste todos os caminhos decisão-a-decisão pelo menos uma vez. Em geral, uma decisão é uma instrução if, e um
caminho decisão-decisão é aquele que une duas decisões. Para atingir esse nível de cobertura de teste,
recomenda-se escolher dados de teste que permitam avaliar cada decisão de todas as maneiras possíveis. Use as
ferramentas de cobertura de código para identificar o código não experimentado pelo teste caixa branca. O teste de
confiabilidade deve ser realizado simultaneamente com o teste caixa branca.
-
Abordagem caixa preta: Verifique a função especificada e o comportamento observável da unidade sem que
seja necessário saber como a unidade os implementa através dos testes de caixa preta, estes se concentram e se
baseiam na entrada e na saída da unidade. A geração de testes unitários com base na abordagem da caixa preta
utiliza os argumentos de entrada e saída das operações da unidade e/ou o estado de saída para avaliação. Por
exemplo, a operação pode incluir um algoritmo (requerendo dois valores como entrada e retornando um terceiro como
saída) ou iniciar a alteração no estado de um objeto ou componente, como a inclusão ou exclusão de um registro de
banco de dados, ambos devem ser testados por completo. Para testar uma operação, você deve obter casos de teste
suficientes para verificar se:
-
Para cada valor válido utilizado como entrada, um valor apropriado foi retornado pela operação;
-
Para cada valor inválido utilizado como entrada, um valor apropriado foi retornado pela operação;
-
Para cada estado de entrada válido, um estado de saída apropriado ocorreu;
-
Para cada estado de entrada inválido, um estado de saída apropriado ocorreu.
Use as ferramentas de cobertura de código para identificar o código não experimentado pelo teste caixa branca. O teste
de confiabilidade deve ser realizado simultaneamente com o teste caixa preta.
Fonte: MDS, Metodologia de Desenvolvimento de Sistemas - Ministério da Cultura, 2008.
|